home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Technotools
/
Technotools (Chestnut CD-ROM)(1993).ISO
/
database
/
foxlib
/
foxlib.txt
< prev
next >
Wrap
Text File
|
1991-03-29
|
167KB
|
6,300 lines
FOXLIB
By Sparkle Software
A collection of commands for FoxPro and FoxBASE +
FOXLIB Version 1.0 Copyright (C) Sparkle Software 1990
All Rights Reserved.
FOXLIB is a trademark of Sparkle Software.
FoxBASE + and FoxPro are registered trademarks of Fox Software Inc.
DEFINITION OF SHAREWARE
Shareware distribution gives users a chance to try software before buying it.
If you try a Shareware program and continue using it, you are expected to
register.
Copyright laws apply to both Shareware and commercial software, and the
copyright holder retains all rights, with a few specific exceptions as stated
below. Shareware authors are accomplished programmers, just like commercial
authors, and the programs are of comparable quality. (In both cases, there
are good programs and bad ones). The main difference is in the method of
distribution. The author specifically grants the right to copy and
distribute the software, either to all and sundry or to a specific group.
For example, some authors require written permission before a commercial disk
vendor may copy their Shareware.
Shareware is a distribution method, not a type of software. You should find
software that suits your needs and pocketbook, whether it's commercial or
Shareware. The Shareware system makes fitting your needs easier, because you
can try before you buy. And because the overhead is low, prices are low
also. Shareware has the ultimate money-back guarantee -- if you don't use the
product, you don't pay for it.
DISCLAIMER - AGREEMENT
SPARKLE SOFTWARE PROVIDES FOXLIB "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF FITNESS FOR A
PARTICULAR PURPOSE OR MERCHANTABILITY AND SPARKLE SOFTWARE SHALL NOT BE
LIABLE FOR ANY TORT, INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES SUCH AS LOSS
OF PROFITS, LOSS OF GOODWILL, OR LOSS OF PRODUCTIVITY FROM THE USE OR
INABILITY TO USE THE SOFTWARE FOR ANY PURPOSE.
SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES SO THIS LANGUAGE
MAY NOT APPLY TO YOU. IN SUCH CASE, SPARKLE SOFTWARE LIABILITIES SHALL BE
LIMITED TO A REFUND OF THE PRODUCT'S PURCHASE PRICE.
FOXLIB is a "shareware program" and is provided at no charge to the user for
EVALUATION. Feel free to share it with your friends, but please do not give
it away altered or as part of another system. The essence of
"user-supported" software is to provide personal computer users with quality
software without high prices, and yet to provide incentive for programmers to
continue to develop new products. If you find this program useful and find
that you are using FOXLIB and continue to use FOXLIB after 30 days, you must
make a registration payment of $45 (U.S. orders only, international orders
are $65) to Sparkle Software. The $45 registration fee will license one copy
for use on any one computer at any one time. You must treat this software
just like a book. An example is that this software may be used by any number
of people and may be freely moved from one computer location to another, so
long as there is no possibility of it being used at one location while it's
being used at another. Just as a book cannot be read by two different persons
at the same time.
Commercial users of FOXLIB must register and pay for their copies of FOXLIB
within 30 days of first use or their license is withdrawn. Site-License
arrangements may be made by contacting Sparkle Software.
Anyone distributing FOXLIB for any kind of remuneration must first contact
Sparkle Software for authorization.
You are encouraged to pass a copy of FOXLIB along to your friends for
evaluation. Please encourage them to register their copy if they find that
they can use it.
ALL REGISTERED USERS WILL RECEIVE ASSEMBLY LANGUAGE SOURCE CODE FOR ALL
FOXLIB COMMANDS, SAMPLE FOX PROGRAM FILES, A PRINTED MANUAL, AND A 16 PAGE
TUTORIAL SHOWING YOU HOW TO CREATE A FOX COMMAND USING THE MICROSOFT MACRO
ASSEMBLER AND DOS'S DEBUG!
When you register FOXLIB, you may not publish the source code in any form.
No amount of modification and/or rewrite of my source code will allow the
consideration of the resultant source code to be your property.
This is the only agreement between you and Sparkle Software. It cannot and
shall not be modified unless in writing and signed both by you and an
authorized officer of Sparkle Software.
FOXLIB is a trademark of Sparkle Software.
Microsoft, Microsoft Macro Assembler, and MS-DOS are registered trademarks of
Microsoft Corporation.
IBM and PS/2 are registered trademarks of International Business Machines
Corporation.
FoxBASE + and FoxPro are registered trademarks of Fox Software Inc.
Intel is a registered trademark of Intel Corporation.
CompuServe is a registered trademark of CompuServe Incorporated.
Acknowledgements:
Software Development
Mike Fieldman
Documentation
Mike Fieldman
I would like to say "Praise the Lord" for version 1.0 being completed.
Special thanks go to my very lovely wife Nancy, Dr. Larry Stokes for giving
me my first exposure to personal computers, Fox Software (Chris Williams,
Lori Womack, Gloria Pfeif, Jacqueline Jaynes, David Fulton, and everyone else
at Fox Software), Corey Schwartz, Dr. Jim Rassi for giving me the opportunity
to teach personal computer classes, and of course, Sparky.
TABLE OF CONTENTS
***** Make sure you read the "README.1ST" file before using FOXLIB *****
INTRODUCTION ........................................ Page 9-10
HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS ... Page 11
INSTALLING FOXLIB ................................... Page 12-13
REGISTRATION & SOFTWARE SUPPORT ..................... Pages 14-15
USING FOXLIB ........................................ Pages 16-18
EXAMPLES ............................................ Page 19
IMPORTANT! .......................................... Page 20
QUICK START ......................................... Page 21
DOS COMMANDS:
CREATE SUBDIRECTORY ................................. Page 23
DOS VERSION ......................................... Page 24
DRIVE READY ......................................... Page 25
GET CURRENT DRIVE ................................... Page 26
GET FILE ATTRIBUTE .................................. Page 27
GET VERIFY FLAG ..................................... Page 28
REMOVE SUBDIRECTORY ................................. Page 29
SET DIRECTORY ....................................... Page 30
SET DRIVE ........................................... Page 31
SET FILE ATTRIBUTE .................................. Page 32
SET VERIFY FLAG ..................................... Page 33
EQUIPMENT COMMANDS:
BIOS DATE ........................................... Page 35
CONVENTIONAL MEMORY ................................. Page 36
EXTENDED MEMORY ..................................... Page 37
GAME ADAPTER ........................................ Page 38
MATH COPROCESSOR .................................... Page 39
MICRO CHANNEL ARCHITECTURE .......................... Page 40
NUMBER OF INSTALLED DRIVES .......................... Page 41
PC BUS .............................................. Page 42
PC TYPE PC .......................................... Page 43
PC TYPE XT .......................................... Page 44
PC TYPE AT .......................................... Page 45
PC TYPE PCjr ........................................ Page 46
PC TYPE PC/XT 286 ................................... Page 47
PC TYPE PC CONVERTIBLE .............................. Page 48
PC TYPE PS/2 MODEL 30 ............................... Page 49
PC TYPE PS/2 MODEL 50 ............................... Page 50
PC TYPE PS/2 MODEL 55 ............................... Page 51
PC TYPE PS/2 MODEL 60 ............................... Page 52
PC TYPE PS/2 MODEL 70 ............................... Page 53
PC TYPE PS/2 MODEL 80 ............................... Page 54
PARALLEL PORT ....................................... Page 55
REAL-TIME CLOCK ..................................... Page 56
SCREEN WIDTH ........................................ Page 57
SERIAL PORT ......................................... Page 58
TABLE OF CONTENTS
KEYBOARD COMMANDS:
CAPS LOCK KEY STATUS ................................ Page 60
INSERT KEY STATUS ................................... Page 61
LEFT SHIFT KEY STATUS ............................... Page 62
NUM LOCK KEY STATUS ................................. Page 63
RIGHT SHIFT KEY STATUS .............................. Page 64
SCROLL LOCK KEY STATUS .............................. Page 65
SET CAPS LOCK KEY OFF ............................... Page 66
SET NUM LOCK KEY OFF ................................ Page 67
SET SCROLL LOCK KEY OFF ............................. Page 68
SET CAPS LOCK KEY ON ................................ Page 69
SET NUM LOCK KEY ON ................................. Page 70
SET SCROLL LOCK KEY ON .............................. Page 71
COMMUNICATION COMMANDS:
INITIALIZE COMMUNICATIONS LINE AT 300 BAUD .......... Page 73
INITIALIZE COMMUNICATIONS LINE AT 1200 BAUD ......... Page 74
INITIALIZE COMMUNICATIONS LINE AT 2400 BAUD ......... Page 75
INITIALIZE COMMUNICATIONS LINE AT 4800 BAUD ......... Page 76
INITIALIZE COMMUNICATIONS LINE AT 9600 BAUD ......... Page 77
COM PORT STATUS ..................................... Page 78
COMMUNICATIONS PORT DATA READY STATUS ............... Page 79
COMMUNICATIONS PORT OVERRUN ERROR STATUS ............ Page 80
COMMUNICATIONS PORT PARITY ERROR STATUS ............. Page 81
COMMUNICATIONS PORT FRAMING ERROR STATUS ............ Page 82
COMMUNICATIONS PORT BREAK INTERRUPT STATUS .......... Page 83
COMMUNICATIONS PORT THR STATUS ...................... Page 84
COMMUNICATIONS PORT TSR STATUS ...................... Page 85
COMMUNICATIONS PORT TIME-OUT ERROR STATUS ........... Page 86
INITIALIZE LINE PRINTER ............................. Page 87
LINE PRINTER STATUS ................................. Page 88
MODEM DELTA CLEAR TO SEND STATUS..................... Page 89
MODEM DELTA DATA SET READY STATUS ................... Page 90
MODEM TRAILING EDGE RING DETECTOR STATUS ............ Page 91
MODEM DELTA RECEIVE LINE SIGNAL DETECT STATUS ....... Page 92
MODEM CLEAR TO SEND STATUS .......................... Page 93
MODEM DATA SET READY STATUS ......................... Page 94
MODEM RING INDICATOR STATUS ......................... Page 95
MODEM RECEIVE LINE SIGNAL DETECT STATUS ............. Page 96
TABLE OF CONTENTS
MISCELLANEOUS COMMANDS:
CDROM DRIVER ........................................ Page 98
CDROM VERSION ....................................... Page 99
CURSOR COLUMN POSITION .............................. Page 100
CURSOR ROW POSITION ................................. Page 101
CURSOR SIZE ......................................... Page 102
DAY OF THE WEEK ..................................... Page 103
MOUSE CENTER BUTTON STATUS .......................... Page 104
MOUSE DRIVER ........................................ Page 105
MOUSE HIDE POINTER .................................. Page 106
MOUSE LEFT BUTTON STATUS ............................ Page 107
MOUSE LANGUAGE ...................................... Page 108
MOUSE RIGHT BUTTON STATUS ........................... Page 109
MOUSE SHOW POINTER .................................. Page 110
MOUSE TYPE .......................................... Page 111
MOUSE VERSION ....................................... Page 112
NUMBER OR CHARACTER ................................. Page 113
PRINT SCREEN ........................................ Page 114
XMS DRIVER .......................................... Page 115
INDEX ............................................... Page 116-117
INTRODUCTION
FOXLIB is a command library that will allow you to perform low level commands
from the dot prompt, FoxPro command window, and from within your favorite
programs (i.e. FoxPro and FoxBASE +). Also, FOXLIB version 1.0 commands can
be moved from one flavor of FOX (i.e. FoxPro version 1.02 and FoxBASE +
version 2.1) to another without any modification.
Please note that you will see the word FOX being used throughout this manual.
FOX refers to FoxPro and FoxBASE +.
FOXLIB was developed for the following reasons:
(1) To help you support your FOX application. For example, if you include
the GETPCENV.PRG program (included on the FOXLIB system disk when you
register) in your application, you can quickly obtain information about your
clients' PC environment. This should help you in supporting your FOX
applications when you are talking with your client on the phone.
(2) To help you install your FOX application. For example, if you use the
INSTALL.PRG program (included on the FOXLIB system disk when you register) in
your FOX installation program, you can perform low-level DOS commands in the
background (e.g. MD, CHDIR, etc.). This will give your installation program
a professional look.
(3) To help your FOX program communicate with your printer. For example, an
end-user has placed the incorrect baud rate in their config.sys file. You
can initialize the serial printer with the correct baud rate within your FOX
application.
FOXLIB will not solve all of your problems, but it will give you an edge in
supporting your FOX programs.
You may already have noticed that the examples in this manual are from either
the dot prompt or FoxPro command window. I did this to show you how easy the
FOXLIB commands are to use. If you are a beginner to FOX, performing FOXLIB
commands from the dot prompt or Foxpro command window will be easier to
grasp. The intermediate and advanced FOX users can use all of the FOXLIB
commands in their programs.
Also, the FOXLIB commands will become very useful to the FOX user for the
following reasons:
(1) When executing DOS commands from the dot prompt or FoxPro command window,
the FOX RUN command requires additional memory than FOXLIB since it has to
load another DOS command.com file into memory. If the computer you or your
client is using does not have sufficient memory for the RUN command (this
could be due to your application or the amount of memory installed on the
computer), you will receive the dreaded "Insufficient memory" error message
on your computer screen, and you will not be able to execute your DOS
command.
(2) The FOXLIB commands are written in assembly language - the computer's
language. Thus they are very fast, much faster than the RUN command, and
take very little memory. As little as 20 bytes!
(3) Most of the FOXLIB commands (e.g. nodrives, mousedrv, mathcopr, xmsdrv,
cursor, printer status, etc.) are not accessible from the FOX RUN command.
HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS
In order to use FOXLIB, you must have an IBM PC or 100% compatible, 640k of
RAM, a 3.5" or 5.25" diskette drive, hard disk, FoxPro, FoxBASE +, and MS-DOS
version 3.1 or higher (some of the FOXLIB commands will work with DOS version
2.1. When Microsoft enhanced MS-DOS in later versions, e.g. Microsoft CD-ROM
extensions, FOXLIB requires MS-DOS 3.1 or greater).
The FOXLIB software package includes the following three items:
Command library that includes the binary files (e.g. cursor.bin) to be loaded
and called into your FOX applications.
ASCII manual.
Registration form.
INSTALLING FOXLIB for both 30-day trial and registered versions
To install FOXLIB on your hard disk, perform the following steps:
1. Create a subdirectory on your hard disk with the name FOXLIB.
For example, we'll assume you'll be creating a subdirectory on drive C on
your hard disk. Type the following ->
MD FOXLIB
and press the return key.
2. Place the FOXLIB diskette into your floppy diskette drive, and then type
the letter of the drive where you just placed the FOXLIB diskette.
For example, if you placed the FOXLIB diskette into drive A, type the
following ->
A:
and press the return key.
3. Copy all of the FOXLIB program files from drive A into the FOXLIB
subdirectory.
For example, type the following ->
cd\prg
copy *.prg c:\FOXLIB
and press the return key.
4. Copy all of the FOXLIB command files from drive A into the FOXLIB
subdirectory.
For example, type the following ->
cd\bin
copy *.bin c:\FOXLIB
and press the return key.
5. Copy all of the FOXLIB source code files from drive A into the FOXLIB
subdirectory.
For example, type the following ->
cd\asm
copy *.asm c:\FOXLIB
and press the return key.
That's all there is to installing FOXLIB on your hard disk.
Please refer to your MS-DOS manual for questions using the CD, MD, and COPY
commands.
REGISTRATION & SOFTWARE SUPPORT
PLEASE REGISTER YOUR SOFTWARE IMMEDIATELY BY COMPLETING THE
REGISTRATION FORM ON THE NEXT PAGE. OTHERWISE, YOU WILL NOT
RECEIVE TELEPHONE SOFTWARE SUPPORT FOR FOXLIB. BY REGISTRATING
YOUR SOFTWARE, YOU WILL RECEIVE THE ASSEMBLY LANGUAGE SOURCE
CODE FOR ALL FOXLIB COMMANDS, SAMPLE FOX PROGRAM FILES (E.G. GETPCENV.PRG),
A PRINTED MANUAL, AND A 16 PAGE TUTORIAL SHOWING YOU HOW TO CREATE A FOX
COMMAND USING THE MICROSOFT MACRO ASSEMBLER AND DOS'S DEBUG!
Once your registration card has been received, you will receive 30
days free (you do pay for the phone call) software support, and my
telephone number. During the 30 days of free software support, you
must leave a phone number where I can contact you collect.
After the 30 days have expired, you can purchase telephone software
support. Please contact me for current rates. I look forward to
answering any questions you may have using FOXLIB. Please understand
that I cannot answer questions concerning how to program in FOX or
assembly language. There are plenty of good programming books that
can be purchased.
Finally, please send the registration form along with a check for
$45 (U.S. orders only, international orders are $65) when the 30 day trial
period expires. If you use any of the FOXLIB commands commercially (e.g.
consulting, software development, software testing, etc.) you must register
FOXLIB immediately.
It took hundreds of hours to write this library. Also, this library would
cost from two to four times the registration fee if it was sold commercially.
Your understanding is deeply appreciated.
Mail check for $45 To: Sparkle Software
Mike Fieldman
610 E. Bell Rd.
Suite #2136
Phoenix, AZ 85022
(International orders are $65)
Company:____________________________________________
Name:_______________________________________________
First Name:__________________ Last Name:____________________
Street Address:_____________________________________________
_____________________________________________
City:___________________ State:__ Zip Code:_________________
Day time phone number:________________________
Evening phone number:_________________________
FOX language you are currently using (please check):
FoxBASE +___ FoxPro___
FOXLIB version:___
Using FOXLIB in your applications
You can execute the FOXLIB commands from the dot prompt, FoxPro command
window, and from within your FOX programs. This is a summary for using the
FOXLIB commands included on the FOXLIB diskette. Please refer to each
individual command located in this manual for specific information.
In order to use FOXLIB, you must have FOX loaded in memory and be your
foreground (active) application.
I will use the CURSOR and NODRIVES FOXLIB commands for examples. Let's say
you want to change the size of the cursor from a line to a block. To
implement this you would perform the following commands from the dot prompt
or FoxPro command window:
. load c:\FOXLIB\cursor
. FOXLIB = "B"
. call cursor with FOXLIB
. release module cursor
the cursor size will now be a █ (block). Let's examine each dot prompt
command in detail.
(1) We loaded the command CURSOR.bin into memory. Notice you do not use the
extension (.bin) of the file you are loading.
(2) We created a parameter, B for block, that we will be sending to the
CURSOR command. ONLY SEND THE PARAMETER SPECIFIED IN EACH FOXLIB COMMAND,
I.E. DO NOT SEND A PARAMETER OTHER THAN WHAT IS ASKED OF YOU FOR EACH FOXLIB
COMMAND.
(3) We called the CURSOR command with the passed parameter "B" (You can pass
character parameters to FOXLIB in either lower or upper case).
(4) We released the command cursor.bin from memory. AFTER YOU LOAD AND CALL
THE COMMAND YOU WANT TO USE, ALWAYS RELEASE IT FROM MEMORY.
Please refer to your FOX manual for questions using the CALL, LOAD, and
RELEASE MODULE commands.
Using FOXLIB in your applications (cont.)
The next example uses the NODRIVES FOXLIB command. If you wanted to
determine the number of logical drives installed on an IBM PC, you would
perform the following steps from the dot prompt or FoxPro command window:
. load c:\FOXLIB\nodrives
. FOXLIB = "NODRIVES"
. call nodrives with FOXLIB
. ?asc(substr(FOXLIB,1,1))
6
. release module nodrives
there are six drives installed on this computer system (drives A, B, C, D, E,
and F). Let's examine each dot prompt command in detail.
(1) We loaded the command NODRIVES.bin into memory. Notice you do not use
the extension (.bin) of the file you are loading.
(2) We created a parameter, NODRIVES, that we will be sending to the NODRIVES
command. ONLY SEND THE PARAMETER SPECIFIED IN EACH FOXLIB COMMAND, I.E. DO
NOT SEND A PARAMETER OTHER THAN WHAT IS ASKED OF YOU FOR EACH FOXLIB COMMAND.
(3) We called the NODRIVES command with the parameter "NODRIVES" (You can
pass character parameters to FOXLIB in either lower or upper case).
(4) We determined the number of installed drives by converting the result to
an ASCII code.
(5) Finally, we released the command nodrives.bin from memory. AFTER YOU
LOAD AND CALL THE COMMAND YOU WANT TO USE, ALWAYS RELEASE IT FROM MEMORY.
When a FOXLIB command returns a value, you may have to convert the value to
an ASCII code using just two FOX functions - SUBSTR and ASC. The SUBSTR and
ASC functions are included with your FOX product (i.e. FoxBASE + and FoxPro).
The SUBSTR function returns a specified number of characters from a string.
For example, the string that was passed to the NODRIVES command was
"NODRIVES." Since the NODRIVES command returns the value (number of
installed drives) in the first letter of the string "NODRIVES" (in this case
the letter N of NODRIVES), all we have to do is obtain the value of the first
letter of the string.
. load nodrives
. FOXLIB = "NODRIVES"
. call nodrives with FOXLIB
. ?substr(FOXLIB,1,1)
. HERE YOU WOULD SEE THE ASCII CODE "SPADE" SYMBOL
We will convert the ASCII code "SPADE" symbol to a number to determine the
number of installed drives. We'll do this using the ASC function.
. ?asc(substr(FOXLIB,1,1))
6
. release module nodrives
If this seems complicated - DON'T WORRY! Just follow the instructions for
each command and you'll do just fine. Please refer to your FOX manual for
questions using the SUBSTR and ASC functions.
EXAMPLES for registered version
I included the following FOX programs on the registered FOXLIB diskette:
GETPCENV.PRG is a simple FOX program that returns information from your PC
environment. You will want to modify this file to suit your needs. One use
of this routine would be to include it in a menu of your application to
better solve telephone support calls (I know that this will not solve all
problems, but at least it will give you a feel for the end users
environment). Then you could ask the end user some basic questions regarding
his/her PC configuration. The advantage to this is staying in your FOX
application without having to shut it down and have the user perform DOS
commands which he/she may not know.
INSTALL.PRG is a simple installation FOX program. Again, You will want to
modify this file to suit your needs. This routine can make installing your
FOX application easier.
COMMANDS.PRG is a FOX program that includes an example for each command in
this manual. I did this so you can "cut and paste" the commands you need
into your FOX source code.
IMPORTANT!
1. MAKE SURE YOU RELEASE A FOXLIB COMMAND FROM MEMORY USING THE FOX
"RELEASE MODULE" COMMAND AFTER YOU HAVE LOADED AND CALLED IT. THIS WILL FREE
UP MEMORY AND YOU WON'T EXCEED THE MAXIMUM NUMBER OF ALLOWED LOADS IMPOSED BY
FOX.
Example: . load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
─────────> . rele modu mousedrv
2. NEVER SEND A PARAMETER OTHER THAN WHAT IS SPECIFIED IN THE FOXLIB
COMMAND. OTHERWISE, YOU COULD GET UNWANTED AND UNPREDICTABLE RESULTS. BELOW
IS THE INCORRECT WAY TO PASS THE PARAMETER "MOUSE" USING THE MOUSE DRIVER
FOXLIB COMMAND.
Example: . load c:\FOXLIB\mousedrv
─────────> . FOXLIB = "MICKEYMOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
Below is the CORRECT way to pass the parameter "MOUSE" using the mouse driver
FOXLIB command.
Example: . load c:\FOXLIB\mousedrv
─────────> . FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
Please refer to your FOX manual for questions using the LOAD, CALL, and
RELEASE MODULE commands.
3. IN A MAINFRAME CLIMATE, YOU HAVE BOTH A TEST AND A PRODUCTION WORKING
ENVIRONMENT. MAKE SURE YOU USE THE TEST ENVIRONMENT (I.E. USE ONLY A COPY OF
YOUR DATA) WHEN FIRST USING ANY OR ALL OF THE FOXLIB COMMANDS.
QUICK START for registered version
If you have installed FOXLIB correctly to drive "C" of your hard disk, you
can execute the GETPCENV.PRG program that came on your FOXLIB system disk.
Just type "do getpcenv" from either the dot prompt or from within the FoxPro
command window.
DOS COMMANDS
CREATDIR
Syntax: CREATDIR
Use: To create a subdirectory.
Parameters: The directory you want to create (e.g. C:\BACKUP).
Returns: The first character in the sending parameter will
have a "Y" (i.e. true) if the subdirectory was
created, and a "N" if the subdirectory could not be
created (e.g. if it already exists). If you did not
pass the parameter correctly (e.g. FOXLIB =
"\backup"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\creatdir
. FOXLIB = "C:\BACKUP"
. call creatdir with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu creatdir
From this example, the subdirectory C:\BACKUP was
created.
Example: if substr(FOXLIB,1,1) = "Y"
copy to c:\backup\filecopy
endif
From the above example, you could save information
to a backup subdirectory for archives.
See: REMOVDIR, SETDIR
DOSVERS
Syntax: DOSVERS
Use: To determine the DOS version.
Parameters: DOS
Returns: The first character in the sending parameter will
have the DOS major version number, and the second
character in the sending parameter will have the DOS
minor version number. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZOS"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\dosvers
. FOXLIB = "DOS"
. call dosvers with FOXLIB
. ?asc(substr(FOXLIB,1,1))
3
. ?asc(substr(FOXLIB,2,1))
30
. rele modu dosvers
From this example, the DOS version is 3.30. Your
application may require a certain DOS version, i.e.
3.30 or higher.
Example: load dosvers
FOXLIB = "DOS"
call dosvers with FOXLIB
IF asc(substr(FOXLIB,1,1)) < 3
@ 3,0 Say "Application requires DOS 3.3 or"
@ 4,0 Say "greater. Press any key to exit."
Wait ""
return
Endif
IF asc(substr(FOXLIB,1,1)) = 3 .and.
asc(substr(FOXLIB,2,1)) < 30
@ 3,0 Say "Application requires DOS 3.3 or"
@ 4,0 Say "greater. Press any key to exit."
Wait ""
return
Endif
If your application needs more than 20 file handles
open at one time, make sure the DOS version is
greater than or equal to 3.30.
DRIVERDY
Syntax: DRIVERDY
Use: To see if floppy disk drive A or B is ready.
Parameters: Drive letter (A or B).
Returns: The first character in the sending parameter will
have a "Y" if the floppy drive is ready, a "N" if
the floppy drive is not ready. If you did not pass
the parameter correctly (e.g. FOXLIB = "/"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\driverdy
. FOXLIB = "B"
. call driverdy with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu driverdy
From this example, drive B is ready for retrieval
or saving of data.
See: FIXEDRRV, GETDRIVE, AND SETDRIVE
GETDRIVE
Syntax: GETDRIVE
Use: To determine the current drive.
Parameters: GETDRIVE
Returns: The first character in the sending parameter will
have the current drive letter (A, B, C, etc.). If
you did not pass the parameter correctly (e.g.
FOXLIB = "ZETDRIVE"), your sending parameter will
be unchanged.
Example: . load c:\FOXLIB\getdrive
. FOXLIB = "GETDRIVE"
. call getdrive with FOXLIB
. ?substr(FOXLIB,1,1)
C
. rele modu getdrive
From this example, the current drive is C.
See: SETDRIVE
GETATTR
Syntax: GETATTR
Use: To determine the file attribute.
Parameters: The subdirectory and the file name (e.g.
\FOXPRO\FOXPROLN.EXE). Do not include the drive
letter and the colon, but you must include the
backslash "\".
Returns: The first character in the sending parameter will
have the file attribute. If you did not pass the
parameter correctly (e.g. FOXLIB = "\FOXPRO\"),
your sending parameter will be unchanged.
Example: . load c:\FOXLIB\getattr
. FOXLIB = "\IO.SYS"
. call getattr with FOXLIB
. ?asc(substr(FOXLIB,1,1))
39
. rele modu getattr
From this example, the file attribute is archive,
system, hidden, and read-only. Below is a list of
all possible outcomes:
Archive, system, hidden, read-only = 39
Archive = 32
Archive, system = 36
Archive, system, hidden = 38
Archive, hidden = 34
Archive, read-only = 33
System = 4
System, hidden = 6
System, read-only = 5
Hidden = 2
Hidden, read-only = 3
Read-only = 1
No attributes set = 0
See: SETATTR
Notes: You can only obtain the file attribute from the
current drive. For example, you are in drive C, and
you want to obtain the file attribute for a file on
drive D. Use the SETDRIVE command to set the
current drive to D, and then use the GETATTR
command.
GETVERFY
Syntax: GETVERFY
Use: To determine if the verify flag is on or off.
Parameters: GETVERIFY
Returns: The first character in the sending parameter will
have a "Y" if verify is on, a "N" if verify is off.
If you did not pass the parameter correctly
(e.g. FOXLIB = "ZETVERIFY"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\getverfy
. FOXLIB = "GETVERIFY"
. call getverfy with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu getverfy
From this example, verify is on. Having verify
on can dramatically slow down your FOX
application since DOS performs a verify operation
after each disk write to ensure that the data has
been recorded correctly.
See: SETVERFY
REMOVDIR
Syntax: REMOVDIR
Use: To remove a subdirectory.
Parameters: The directory you want to remove (e.g. C:\BACKUP).
Returns: The first character in the sending parameter will
have a "Y" (i.e. true) if the subdirectory was
removed, and a "N" if the subdirectory could not be
removed (e.g. if it already was removed). If you did
not pass the parameter correctly (e.g. FOXLIB =
"\backup"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\removdir
. FOXLIB = "C:\BACKUP"
. call removdir with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu removdir
From this example, the subdirectory C:\BACKUP was
removed.
See: CREATDIR, SETDIR
SETDIR
Syntax: SETDIR
Use: To set a subdirectory.
Parameters: The directory you want to set (e.g. C:\BACKUP).
Returns: The first character in the sending parameter will
have a "Y" (i.e. true) if the subdirectory was set,
and a "N" if the subdirectory was not set. If you
did not pass the parameter correctly (e.g. FOXLIB
= "\backup"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\setdir
. FOXLIB = "C:\BACKUP"
. call setdir with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu setdir
From this example, the subdirectory was set to
c"\backup."
Example: if substr(FOXLIB,1,1) = "Y"
copy to c:\backup\filecopy
endif
From the above example, you could first verify that
a subdirectory exists. If it does, you could then
copy information to it.
Notes: Please note that when you use the SETDIR FOXLIB
command, you will make that subdirectory the current
subdirectory.
See: CREATDIR, REMOVDIR
SETDRIVE
Syntax: SETDRIVE
Use: To set a disk drive.
Parameters: Drive letter (A=0, B=1, C=2,..., Z=25).
Returns: The first character in the sending parameter will
have a "Y" if the drive number was set, a "N" if the
drive number was not set. If you did not pass the
parameter correctly (e.g. FOXLIB = "/"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\setdrive
. FOXLIB = "B"
. call setdrive with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu setdrive
From this example, the drive was set to B.
See: GETDRIVE
SETATTR
Syntax: SETATTR
Use: To set the file attribute.
Parameters: The subdirectory, the file name, and the file
attribute (e.g. \FOXPRO\FOXPROLN.EXE,!). You do not
include the drive letter, but you mus 0'
*e
backslash "\".
Returns: The first character in the sending parameter will
have a "Y" if the file attribute was set, a "N" if
the file attribute was not set. If you did not pass
the parameter correctly (e.g. FOXLIB =
"\FOXPRO\"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\setattr
. FOXLIB = "\FOXPRO\MIKE.TXT,!"
. call setattr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu setattr
From this example, the file attribute was set to
archive and read-only. Below is a list of
parameters to use in setting file attributes.
Archive, system, hidden, read-only = '
Archive, system, hidden = &
Archive, system = $
Archive, read-only = !
Archive, hidden = #
Archive = space
System, hidden = 6
System, read-only = 5
System = 4
Hidden, read-only = 3
Hidden = 2
Read-only = 1
When setting just the archive file attribute, use
a space. For example:
. FOXLIB = "\FOXPRO\MIKE.TXT, "
See: GETATTR
Notes: You can only set the file attribute from the current
drive. For example, you are in drive C, and you
want to set the file attribute for a file on drive
D. Use the SETDRIVE command to set the current
drive to D, and then use the SETATTR command.
SETVERFY
Syntax: SETVERFY
Use: To set the verify flag on or off.
Parameters: 1 or 0. 1 to set on, 0 to set off.
Returns: The first character in the sending parameter will
have a "Y" if verify was set on, a "Y" if verify was
set off. If you did not pass the parameter
correctly (e.g. FOXLIB = "Z"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\setverfy
. FOXLIB = "0"
. call setverfy with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu setverfy
From this example, verify was successfully set to
off.
See: GETVERFY
EQUIPMENT COMMANDS
BIOSDATE
Syntax: BIOSDATE
Use: To determine the date of the ROM BIOS.
Parameters: BIOSDATE
Returns: The first eight characters in the FOXLIB parameter
will have the date of the ROM BIOS. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZIOSDATE"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\biosdate
. FOXLIB = "BIOSDATE"
. call biosdate with FOXLIB
. ?FOXLIB
06/26/89
. rele modu biosdate
From this example, the date of the ROM BIOS is
June 26, 1989.
CONVMEM
Syntax: CONVMEM
Use: To determine the amount of installed conventional
memory.
Parameters: CONV
Returns: The first three characters in the sending parameter
will have the amount of conventional memory
installed on the computer system. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZONV"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\convmem
. FOXLIB = "CONV"
. call convmem with FOXLIB
. ?substr(FOXLIB,1,3)
640
. rele modu convmem
From this example, there is 640K of conventional
memory installed on the computer system.
Example: if val(substr(FOXLIB,1,3) <> 640
@ 1,0 Say "Error! Need 640K of conventional"
@ 2,0 Say "memory to load application."
@ 3,0 Say "program."
endif
If your application requires 640K of conventional
memory, first determine the amount of installed
conventional memory before loading your program.
See: EXTMEM
EXTMEM
Syntax: EXTMEM
Use: To determine the amount of extended memory.
Parameters: EXTMEM
Returns: The first five characters in the sending parameter
will have the amount of extended memory installed
on the computer system. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZXTMEM"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\extmem
. FOXLIB = "EXTMEM"
. call extmem with FOXLIB
. ?RTRIM(FOXLIB)
3072
. rele modu extmem
From this example, there is 3072K of extended
memory installed on the computer system. Notice the
FOX function RTRIM being used here to remove any
trailing spaces.
See: CONVMEM
GAMEADAP
Syntax: GAMEADAP
Use: To determine if a game adapter is installed.
Parameters: GAME
Returns: The first character in the sending parameter will
have a "Y" if a game adapter is installed, a "N" if
it does not exist. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZAME"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\gameadap
. FOXLIB = "GAME"
. call gameadap with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu gameadap
From this example, a game adapter is installed.
MATHCOPR
Syntax: MATHCOPR
Use: To determine if a math coprocessor is present.
Parameters: MATH
Returns: The first character in the sending parameter will
have a "Y" if a math coprocessor exists, a "N" if
it does not exist. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZATH"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\mathcopr
. FOXLIB = "MATH"
. call mathcopr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mathcopr
From this example, a math coprocessor is installed.
MCA
Syntax: MCA
Use: To determine if Micro Channel Architecture.
Parameters: MCA
Returns: The first character in the sending parameter will
have a "Y" if a Micro Channel Architecture is
present, a "N" if it is not present. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZCA"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\mca
. FOXLIB = "MCA"
. call mca with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mca
From this example, Micro Channel Architecture is
present.
See: PCBUS
NODRIVES
Syntax: NODRIVES
Use: To determine the number of installed disk drives.
Parameters: NODRIVES
Returns: The first character in the sending parameter will
have the number of disk drives installed. If you
did not pass the parameter correctly (e.g. FOXLIB
= "ZODRIVES"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\nodrives
. FOXLIB = "NODRIVES"
. call nodrives with FOXLIB
. ?asc(substr(FOXLIB,1,1))
26
. rele modu nodrives
From this example, there are 26 installed disk
drives. These disk drives could be two floppy
drives A and B; a hard disk partitioned into
three drives C, D, and E; and ram disks (F through
Z).
PCBUS
Syntax: PCBUS
Use: To determine if PC bus I/O channel.
Parameters: PCBUS
Returns: The first character in the sending parameter will
have a "Y" if a PC bus I/O channel is present, a "N"
if it is not present. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZCBUS"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\pcbus
. FOXLIB = "PCBUS"
. call pcbus with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu pcbus
From this example, PC bus I/O channel is present.
See: MCA
Notes: This command will not work on the PC/AT dated before
6/10/85.
PC
Syntax: PC
Use: To determine if PC.
Parameters: PC
Returns: The first character in the sending parameter will
have a "Y" if PC, a "N" if it is not a PC. If you
did not pass the parameter correctly (e.g. FOXLIB
= "ZC"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\pc
. FOXLIB = "PC"
. call pc with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu pc
From this example, it is a true PC.
PCXT
Syntax: PCXT
Use: To determine if PC/XT.
Parameters: PCXT
Returns: The first character in the sending parameter will
have a "Y" if PC/XT, a "N" if it is not a PC/XT. If
you did not pass the parameter correctly (e.g.
FOXLIB = "ZCXT"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\pcxt
. FOXLIB = "PCXT"
. call pcxt with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu pcxt
From this example, it is a PC/XT.
PCAT
Syntax: PCAT
Use: To determine if PC/AT.
Parameters: PCAT
Returns: The first character in the sending parameter will
have a "Y" if PC/AT, a "N" if it is not a PC/AT. If
you did not pass the parameter correctly (e.g.
FOXLIB = "ZCAT"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\pcat
. FOXLIB = "PCAT"
. call pcat with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu pcat
From this example, it is a PC/AT.
PCJR
Syntax: PCJR
Use: To determine if PC/JR.
Parameters: PCJR
Returns: The first character in the sending parameter will
have a "Y" if PC/JR, a "N" if it is not a PC/JR. If
you did not pass the parameter correctly (e.g.
FOXLIB = "ZCJR"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\pcjr
. FOXLIB = "PCJR"
. call pcjr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu pcjr
From this example, it is a PC jr.
PCXT286
Syntax: PCXT286
Use: To determine if PC/XT 286.
Parameters: PCXT286
Returns: The first character in the sending parameter will
have a "Y" if PC/XT 286, a "N" if it is not a PC/XT
286. If you did not pass the parameter correctly
(e.g. FOXLIB = "ZCXT286"), your sending parameter
will be unchanged.
Example: . load c:\FOXLIB\pcxt286
. FOXLIB = "PCXT286"
. call pcxt286 with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu pcxt286
From this example, it is a PC/XT 286.
PCCONV
Syntax: PCCONV
Use: To determine if PC Convertible.
Parameters: PCCONV
Returns: The first character in the sending parameter will
have a "Y" if PC Convertible, a "N" if it is not a
PC Convertible. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZCCONV"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\pcconv
. FOXLIB = "PCCONV"
. call pcconv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu pcconv
From this example, it is a PC Convertible.
PS2M30
Syntax: PS2M30
Use: To determine if PS/2 Model 30.
Parameters: PS2M30
Returns: The first character in the sending parameter will
have a "Y" if PS/2 Model 30, a "N" if it is not a
PS/2 Model 30. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZS2M30"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\ps2m30
. FOXLIB = "PS2M30"
. call ps2m30 with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu ps2m30
From this example, it is a PS/2 Model 30.
PS2M50
Syntax: PS2M50
Use: To determine if PS/2 Model 50.
Parameters: PS2M50
Returns: The first character in the sending parameter will
have a "Y" if PS/2 Model 50, a "N" if it is not a
PS/2 Model 50. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZS2M50"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\ps2m50
. FOXLIB = "PS2M50"
. call ps2m50 with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu ps2m50
From this example, it is a PS/2 Model 50.
PS2M55
Syntax: PS2M55
Use: To determine if PS/2 Model 55 SX.
Parameters: PS2M55
Returns: The first character in the sending parameter will
have a "Y" if PS/2 Model 55, a "N" if it is not a
PS/2 Model 55. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZS2M55"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\ps2m55
. FOXLIB = "PS2M55"
. call ps2m55 with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu ps2m55
From this example, it is a PS/2 Model 55 SX.
PS2M60
Syntax: PS2M60
Use: To determine if PS/2 Model 60.
Parameters: PS2M60
Returns: The first character in the sending parameter will
have a "Y" if PS/2 Model 60, a "N" if it is not a
PS/2 Model 60. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZS2M60"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\ps2m60
. FOXLIB = "PS2M60"
. call ps2m60 with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu ps2m60
From this example, it is a PS/2 Model 60.
PS2M70
Syntax: PS2M70
Use: To determine if PS/2 Model 70.
Parameters: PS2M70
Returns: The first character in the sending parameter will
have a "Y" if PS/2 Model 70, a "N" if it is not a
PS/2 Model 70. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZS2M70"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\ps2m70
. FOXLIB = "PS2M70"
. call ps2m70 with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu ps2m70
From this example, it is a PS/2 Model 70.
PS2M80
Syntax: PS2M80
Use: To determine if PS/2 Model 80.
Parameters: PS2M80
Returns: The first character in the sending parameter will
have a "Y" if PS/2 Model 80, a "N" if it is not a
PS/2 Model 80. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZS2M80"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\ps2m80
. FOXLIB = "PS2M80"
. call ps2m80 with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu ps2m80
From this example, it is a PS/2 Model 80.
PARALLEL
Syntax: PARALLEL
Use: To determine if a parallel port exists.
Parameters: PARALLEL
Returns: The first character in the sending parameter will
have a "Y" if a parallel port exists, and a "N" if
a parallel port does not exist. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZARALLEL"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\parallel
. FOXLIB = "PARALLEL"
. call parallel with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu parallel
From this example, a parallel port does exist.
REALTIME
Syntax: REALTIME
Use: To determine if a real-time clock is present.
Parameters: REALTIME
Returns: The first character in the sending parameter will
have a "Y" if a real-time clock is present, a "N"
if it is not present. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZEALTIME"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\realtime
. FOXLIB = "REALTIME"
. call realtime with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu realtime
From this example, a real-time clock is present.
Notes: This command will not work on the PC/AT dated before
6/10/85.
SCRNSIZE
Syntax: SCRNSIZE
Use: To determine the mode (width in characters) on the
computer screen (possible outcomes are 40 or 80).
Parameters: SCRNSIZE
Returns: The first character in the sending parameter will
have the width of characters. If you did not pass
the parameter correctly (e.g. FOXLIB =
"ZCRNSIZE"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\scrnsize
. FOXLIB = "SCRNSIZE"
. call scrnsize with FOXLIB
. ?asc(substr(FOXLIB,1,1))
80
. rele modu scrnsize
From this example, the screen width is 80
characters.
SERIAL
Syntax: SERIAL
Use: To determine if a serial port exists.
Parameters: SERIAL
Returns: The first character in the sending parameter will
have a "Y" if a serial port exists, and a "N" if a
serial port does not exist. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZERIAL"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\serial
. FOXLIB = "SERIAL"
. call serial with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu serial
From this example, a serial port exists.
KEYBOARD COMMANDS
CAPSSTAT
Syntax: CAPSSTAT
Use: To determine if the Caps Lock key is on.
Parameters: CAPS
Returns: The first character in the sending parameter will
have a "Y" if the Caps Lock key is on, a "N" if it
is off. If you did not pass the parameter correctly
(e.g. FOXLIB = "ZAPS"), your sending parameter
will be unchanged.
Example: . load c:\FOXLIB\capsstat
. FOXLIB = "CAPS"
. call capsstat with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu capsstat
From this example, the Caps Lock key is on.
Notes: Make sure you re-load capsstat into memory each time
you determine if the Caps Lock key is on or off.
INSSTAT
Syntax: INSSTAT
Use: To determine if the Insert key is on.
Parameters: INS
Returns: The first character in the sending parameter will
have a "Y" if the Insert key is on, a "N" if it is
off. If you did not pass the parameter correctly
(e.g. FOXLIB = "ZNS"), your sending parameter will
be unchanged.
Example: . load c:\FOXLIB\insstat
. FOXLIB = "INS"
. call insstat with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu insstat
From this example, the Insert key is on.
Notes: Make sure you re-load insstat into memory each time
you determine if the Insert Lock key is on or off.
LEFTSHFT
Syntax: LEFTSHFT
Use: To determine if the Left Shift key is down.
Parameters: LEFT
Returns: The first character in the sending parameter will
have a "Y" if the Left Shift key is down, a "N" if
it is not down. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZEFT"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\leftshft
. FOXLIB = "LEFT"
. call leftshft with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu leftshft
From this example, the Left Shift key is down.
Notes: Make sure you re-load leftshft into memory each time
you determine if the Left Shift key is down.
NUMSTAT
Syntax: NUMSTAT
Use: To determine if the Num Lock key is on.
Parameters: NUM
Returns: The first character in the sending parameter will
have a "Y" if the Num Lock key is on, a "N" if it
is off. If you did not pass the parameter correctly
(e.g. FOXLIB = "ZUM"), your sending parameter will
be unchanged.
Example: . load c:\FOXLIB\numstat
. FOXLIB = "NUM"
. call numstat with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu numstat
From this example, the Num Lock key is on.
Notes: Make sure you re-load numstat into memory each time
you determine if the Num Lock key is on or off.
RGHTSHFT
Syntax: RGHTSHFT
Use: To determine if the Left Shift key is down.
Parameters: RIGHT
Returns: The first character in the sending parameter will
have a "Y" if the Right Shift key is down, a "N" if
it is not down. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZIGHT"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\rghtshft
. FOXLIB = "RIGHT"
. call rghtshft with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu rghtshft
From this example, the Right Shift key is down.
Notes: Make sure you re-load rghtshft into memory each time
you determine if the Right Shift key is down.
SCRLSTAT
Syntax: SCRLSTAT
Use: To determine if the Scroll Lock key is on.
Parameters: SCRL
Returns: The first character in the sending parameter will
have a "Y" if the Scroll Lock key is on, a "N" if
it is off. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZCRL"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\scrlstat
. FOXLIB = "SCRL"
. call scrlstat with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu scrlstat
From this example, the Scroll Lock key is on.
Notes: Make sure you re-load scrlstat into memory each time
you determine if the Scroll Lock key is on or off.
CAPSOFF
Syntax: CAPSOFF
Use: To set the Caps Lock key off.
Parameters: CAPS
Returns: Nothing is returned. If you did not pass the
parameter correctly (e.g. sending = "ZAPS"), your
FOXLIB parameter will be unchanged.
Example: . load c:\FOXLIB\capsoff
. FOXLIB = "CAPS"
. call capsoff with FOXLIB
. rele modu capsoff
From this example, the Caps Lock key is set off.
Notes: Make sure you re-load capsoff into memory each time
you set the Caps Lock key off.
NUMOFF
Syntax: NUMOFF
Use: To set the Num Lock key off.
Parameters: NUM
Returns: Nothing is returned. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZUM"), your
FOXLIB parameter will be unchanged.
Example: . load c:\FOXLIB\numoff
. FOXLIB = "NUM"
. call numoff with FOXLIB
. rele modu numoff
From this example, the Num Lock key is set off.
Notes: Make sure you re-load numoff into memory each time
you set the Num Lock key off.
SCRLOFF
Syntax: SCRLOFF
Use: To set the Scroll Lock key off.
Parameters: SCRL
Returns: Nothing is returned. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZCRL"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\scrloff
. FOXLIB = "SCRL"
. call scrloff with FOXLIB
. rele modu scrloff
From this example, the Scroll Lock key is set off.
Notes: Make sure you re-load scrloff into memory each time
you set the Scroll Lock key off.
CAPSON
Syntax: CAPSON
Use: To set the Caps Lock key on.
Parameters: CAPS
Returns: Nothing is returned. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZAPS"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\capson
. FOXLIB = "CAPS"
. call capson with FOXLIB
. rele modu capson
From this example, the Caps Lock key is set on.
Notes: Make sure you re-load capson into memory each time
you set the Caps Lock key on.
NUMON
Syntax: NUMON
Use: To set the Num Lock key on.
Parameters: NUM
Returns: Nothing is returned. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZUM"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\numon
. FOXLIB = "NUM"
. call numon with FOXLIB
. rele modu numon
From this example, the Num Lock key is set on.
Notes: Make sure you re-load numon into memory each time
you set the Num Lock key on.
SCRLON
Syntax: SCRLON
Use: To set the Scroll Lock key on.
Parameters: SCRL
Returns: Nothing is returned. If you did not pass the
parameter correctly (e.g. sending = "ZCRL"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\scrlon
. FOXLIB = "SCRL"
. call scrlon with FOXLIB
. rele modu scrlon
From this example, the Scroll Lock key is set on.
Notes: Make sure you re-load scrlon into memory each time
you set the Scroll Lock key on.
COMMUNICATION COMMANDS
COM300
Syntax: COM300
Use: To initialize the communications line at 300 baud.
Parameters: In order to initialize the communications line, the
baud rate, parity, stop bit, and data length
parameters have to be set. Use the table below to
initialize the communications lines 1, 2, 3, and 4.
If you wanted to initialize communications line 1
at 300 baud, no parity, 1 stop bit, and 7 data
length, you would choose the letter "A" from the
table below and add a comma and the communications
line to initialize - in this case the number 0.
Remember, that communications line 1 is 0, line 2
is 1, line 3 is 2, and line 4 is 3.
300, no parity, 1 stop bit, 7 data length = A
300, no parity, 1 stop bit, 8 data length = B
300, no parity, 2 stop bit, 7 data length = C
300, no parity, 2 stop bit, 8 data length = D
300, odd parity, 1 stop bit, 7 data length = E
300, odd parity, 1 stop bit, 8 data length = F
300, odd parity, 2 stop bit, 7 data length = G
300, odd parity, 2 stop bit, 8 data length = H
300, even parity, 1 stop bit, 7 data length = I
300, even parity, 1 stop bit, 8 data length = J
300, even parity, 2 stop bit, 7 data length = K
300, even parity, 2 stop bit, 8 data length = L
Returns: Use the FOXLIB communications status commands
(i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
COMTHR, COMTSR, and COMTOE) to obtain the status of
the communications line if the return value is not
equal to 1 or 97. If the return value is not equal
to 1 or 97, load and call COM300 again to see if any
errors disappear. If you did not pass the parameter
correctly (e.g. FOXLIB = "Z,0"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\com300
. FOXLIB = "A,0"
. call com300 with FOXLIB
. ?substr(FOXLIB,1,1) = "A"
.F.
. ?asc(substr(FOXLIB,1,1)) = 97
.T.
. rele modu com300
First test to see if you passed the parameter correctly. From this example, the
parameter was passed correctly since the first character is not equal to "A".
COM1200
Syntax: COM1200
Use: To initialize the communications line at 1200 baud.
Parameters: In order to initialize the communications line, the
baud rate, parity, stop bit, and data length
parameters have to be set. Use the table below to
initialize the communications lines 1, 2, 3, and 4.
If you wanted to initialize communications line 1
at 1200 baud, no parity, 1 stop bit, and 7 data
length, you would choose the letter "A" from the
table below and add a comma and the communications
line to initialize - in this case the number 0.
Remember, that communications line 1 is 0, line 2
is 1, line 3 is 2, and line 4 is 3.
1200, no parity, 1 stop bit, 7 data length = A
1200, no parity, 1 stop bit, 8 data length = B
1200, no parity, 2 stop bit, 7 data length = C
1200, no parity, 2 stop bit, 8 data length = D
1200, odd parity, 1 stop bit, 7 data length = E
1200, odd parity, 1 stop bit, 8 data length = F
1200, odd parity, 2 stop bit, 7 data length = G
1200, odd parity, 2 stop bit, 8 data length = H
1200, even parity, 1 stop bit, 7 data length = I
1200, even parity, 1 stop bit, 8 data length = J
1200, even parity, 2 stop bit, 7 data length = K
1200, even parity, 2 stop bit, 8 data length = L
Returns: Use the FOXLIB communications status commands
(i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
COMTHR, COMTSR, and COMTOE) to obtain the status of
the communications line if the return value is not
equal to 1 or 97. If the return value is not equal
to 1 or 97, load and call COM1200 again to see if
any errors disappear. If you did not pass the
parameter correctly (e.g. FOXLIB = "Z,0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\com1200
. FOXLIB = "1,0"
. call com1200 with FOXLIB
. ?substr(FOXLIB,1,1) = "A"
.F.
. ?asc(substr(FOXLIB,1,1)) = 97
.T.
. rele modu com1200
First test to see if you passed the parameter correctly. From this example, the
parameter was passed correctly since the first character is not equal to "A".
COM2400
Syntax: COM2400
Use: To initialize the communications line at 2400 baud.
Parameters: In order to initialize the communications line, the
baud rate, parity, stop bit, and data length
parameters have to be set. Use the table below to
initialize the communications lines 1, 2, 3, and 4.
If you wanted to initialize communications line 1
at 2400 baud, no parity, 1 stop bit, and 7 data
length, you would choose the letter "A" from the
table below and add a comma and the communications
line to initialize - in this case the number 0.
Remember, that communications line 1 is 0, line 2
is 1, line 3 is 2, and line 4 is 3.
2400, no parity, 1 stop bit, 7 data length = A
2400, no parity, 1 stop bit, 8 data length = B
2400, no parity, 2 stop bit, 7 data length = C
2400, no parity, 2 stop bit, 8 data length = D
2400, odd parity, 1 stop bit, 7 data length = E
2400, odd parity, 1 stop bit, 8 data length = F
2400, odd parity, 2 stop bit, 7 data length = G
2400, odd parity, 2 stop bit, 8 data length = H
2400, even parity, 1 stop bit, 7 data length = I
2400, even parity, 1 stop bit, 8 data length = J
2400, even parity, 2 stop bit, 7 data length = K
2400, even parity, 2 stop bit, 8 data length = L
Returns: Use the FOXLIB communications status commands
(i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
COMTHR, COMTSR, and COMTOE) to obtain the status of
the communications line if the return value is not
equal to 1 or 97. If the return value is not equal
to 1 or 97, load and call COM2400 again to see if
any errors disappear. If you did not pass the
parameter correctly (e.g. FOXLIB = "Z,0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\com2400
. FOXLIB = "A,0"
. call com2400 with FOXLIB
. ?substr(FOXLIB,1,1) = "A"
.F.
. ?asc(substr(FOXLIB,1,1)) = 97
.T.
. rele modu com2400
First test to see if you passed the parameter correctly. From this example, the
parameter was passed correctly since the first character is not equal to "A".
COM4800
Syntax: COM4800
Use: To initialize the communications line at 4800 baud.
Parameters: In order to initialize the communications line, the
baud rate, parity, stop bit, and data length
parameters have to be set. Use the table below to
initialize the communications lines 1, 2, 3, and 4.
If you wanted to initialize communications line 1
at 4800 baud, no parity, 1 stop bit, and 7 data
length, you would choose the letter "A" from the
table below and add a comma and the communications
line to initialize - in this case the number 0.
Remember, that communications line 1 is 0, line 2
is 1, line 3 is 2, and line 4 is 3.
4800, no parity, 1 stop bit, 7 data length = A
4800, no parity, 1 stop bit, 8 data length = B
4800, no parity, 2 stop bit, 7 data length = C
4800, no parity, 2 stop bit, 8 data length = D
4800, odd parity, 1 stop bit, 7 data length = E
4800, odd parity, 1 stop bit, 8 data length = F
4800, odd parity, 2 stop bit, 7 data length = G
4800, odd parity, 2 stop bit, 8 data length = H
4800, even parity, 1 stop bit, 7 data length = I
4800, even parity, 1 stop bit, 8 data length = J
4800, even parity, 2 stop bit, 7 data length = K
4800, even parity, 2 stop bit, 8 data length = L
Returns: Use the FOXLIB communications status commands
(i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
COMTHR, COMTSR, and COMTOE) to obtain the status of
the communications line if the return value is not
equal to 1 or 97. If the return value is not equal
to 1 or 97, load and call COM4800 again to see if
any errors disappear. If you did not pass the
parameter correctly (e.g. FOXLIB = "Z,0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\com4800
. FOXLIB = "A,0"
. call com4800 with FOXLIB
. ?substr(FOXLIB,1,1) = "A"
.F.
. ?asc(substr(FOXLIB,1,1)) = 97
.T.
. rele modu com4800
First test to see if you passed the parameter correctly. From this example, the
parameter was passed correctly since the first character is not equal to "A".
COM9600
Syntax: COM9600
Use: To initialize the communications line at 9600 baud.
Parameters: In order to initialize the communications line, the
baud rate, parity, stop bit, and data length
parameters have to be set. Use the table below to
initialize the communications lines 1, 2, 3, and 4.
If you wanted to initialize communications line 1
at 9600 baud, no parity, 1 stop bit, and 7 data
length, you would choose the letter "A" from the
table below and add a comma and the communications
line to initialize - in this case the number 0.
Remember, that communications line 1 is 0, line 2
is 1, line 3 is 2, and line 4 is 3.
9600, no parity, 1 stop bit, 7 data length = A
9600, no parity, 1 stop bit, 8 data length = B
9600, no parity, 2 stop bit, 7 data length = C
9600, no parity, 2 stop bit, 8 data length = D
9600, odd parity, 1 stop bit, 7 data length = E
9600, odd parity, 1 stop bit, 8 data length = F
9600, odd parity, 2 stop bit, 7 data length = G
9600, odd parity, 2 stop bit, 8 data length = H
9600, even parity, 1 stop bit, 7 data length = I
9600, even parity, 1 stop bit, 8 data length = J
9600, even parity, 2 stop bit, 7 data length = K
9600, even parity, 2 stop bit, 8 data length = L
Returns: Use the FOXLIB communications status commands
(i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
COMTHR, COMTSR, and COMTOE) to obtain the status of
the communications line if the return value is not
equal to 1 or 97. If the return value is not equal
to 1 or 97, load and call COM9600 again to see if
any errors disappear. If you did not pass the
parameter correctly (e.g. FOXLIB = "Z,0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\com9600
. FOXLIB = "A,0"
. call com9600 with FOXLIB
. ?substr(FOXLIB,1,1) = "A"
.F.
. ?asc(substr(FOXLIB,1,1)) = 97
.T.
. rele modu com9600
First test to see if you passed the parameter correctly. From this example, the
parameter was passed correctly since the first character is not equal to "A".
COMSTAT
Syntax: COMSTAT
Use: To determine if a communications line is data
ready.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have the status of the communication line. If you
did not pass the parameter correctly (e.g. FOXLIB
= "ZOM0"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\comstat
. FOXLIB = "COM0"
. call comstat with FOXLIB
. ?asc(substr(FOXLIB,1,1)) = 97
.T.
. rele modu comstat
From this example, the status of communication port
1 is: data ready, transfer holding register empty,
and transfer shift register empty. If the return
value is not equal to 1 or 97, load and call COMSTAT
again to see if any errors disappear. If you did
not receive a value of 1 or 97, then an error
occurred, and the communications port may not ready
to properly receive data.
COMDR
Syntax: COMDR
Use: To determine the status of data ready.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if data ready is turned on, a "N" if data
ready is turned off. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZOM0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\comdr
. FOXLIB = "COM0"
. call comdr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu comdr
From this example, data ready is turned on.
COMOE
Syntax: COMOE
Use: To determine the status of overrun error.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if overrun error is turned on, a "N" if
overrun error is turned off. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZOM0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\comoe
. FOXLIB = "COM0"
. call comoe with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu comoe
From this example, overrun error is turned on.
COMPE
Syntax: COMPE
Use: To determine the status of parity error.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if parity error is turned on, a "N" if
parity error is turned off. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZOM0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\compe
. FOXLIB = "COM0"
. call compe with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu compe
From this example, parity error is turned on.
COMFE
Syntax: COMFE
Use: To determine the status of framing error.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if framing error is turned on, a "N" if
framing error is turned off. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZOM0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\comfe
. FOXLIB = "COM0"
. call comfe with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu comfe
From this example, framing error is turned on.
COMBID
Syntax: COMBID
Use: To determine the status of break interrupt detected.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if break interrupt detected is turned on,
a "N" if break interrupt detected is turned off. If
you did not pass the parameter correctly (e.g.
FOXLIB = "ZOM0"), your sending parameter will
be unchanged.
Example: . load c:\FOXLIB\combid
. FOXLIB = "COM0"
. call combid with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu combid
From this example, break interrupt detected is
turned on.
COMTHR
Syntax: COMTHR
Use: To determine the status of transfer holding register
empty.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if transfer holding register empty is
turned on, a "N" if transfer holding register empty
is turned off. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZOM0"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\comthr
. FOXLIB = "COM0"
. call comthr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu comthr
From this example, transfer holding register empty
is turned on.
COMTSR
Syntax: COMTSR
Use: To determine the status of transfer shift register
empty.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if transfer shift register empty is
turned on, a "N" if transfer shift register empty
is turned off. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZOM0"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\comtsr
. FOXLIB = "COM0"
. call comtsr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu comtsr
From this example, transfer shift register empty
is turned on.
COMTOE
Syntax: COMTOE
Use: To determine the status of time-out error.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if time-out error is turned on, a "N" if
time-out error is turned off. If you did not pass
the parameter correctly (e.g. FOXLIB = "ZOM0"),
your sending parameter will be unchanged.
Example: . load c:\FOXLIB\comtoe
. FOXLIB = "COM0"
. call comtoe with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu comtoe
From this example, time-out error is turned on.
LPTINIT
Syntax: LPTINIT
Use: To initialize the line printer (LPT).
Parameters: LPT0 for lpt1, LPT1 for lpt2, and LPT2 for lpt3.
Returns: The first character in the sending parameter will
have the status of the line printer. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZPT0"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\lptinit
. FOXLIB = "LPT0"
. call lptinit with FOXLIB
. ?asc(substr(FOXLIB,1,1))
144
. rele modu lptinit
From this example, the printer status for LPT1 after
initialization is ready to print.
Below is a table of possible outcomes:
0 = Initialization successful
8 = Offline
40 = Out of paper
72 = I/O error
144 = Printer ready
200 = Printer power off
The above values are only valid with IBM and EPSON
compatible printers. If you have a different type
of printer, you may be able to determine the value
specific to your printer. If you are using a non-
compatible printer, run LPTINIT under different
conditions (e.g. printer on, printer not turned on,
etc.). The results you obtain may allow you to
build a table of outcomes for your particular
printer. When you test LPTINIT using a non-
IBM/EPSON compatible printer, make sure all of your
FOX application files are closed. Otherwise, you
may get unwanted results!
LPTSTAT
Syntax: LPTSTAT
Use: To determine the status of the line printer (LPT).
Parameters: LPT0 for lpt1, LPT1 for lpt2, and LPT2 for lpt3.
Returns: The first character in the sending parameter will
have the status of the line printer. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZPT0"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\lptstat
. FOXLIB = "LPT0"
. call lptstat with FOXLIB
. ?asc(substr(FOXLIB,1,1))
144
. rele modu lptstat
From this example, the status of the LPT1 is printer
ready.
Below is a table of possible outcomes:
8 = Offline
40 = Out of paper
72 = I/O error
144 = Printer ready
200 = Printer power off
The above values are only valid with IBM and EPSON
compatible printers. If you have a different type
of printer, you may be able to determine the value
specific to your printer. If you are using a non-
compatible printer, run LPTSTAT under different
conditions (e.g. printer on, printer not turned on,
etc.). The results you obtain may allow you to
build a table of outcomes for your particular
printer. When you test LPTINIT using a non-
IBM/EPSON compatible printer, make sure all of your
FOX application files are closed. Otherwise, you
may get unwanted results!
MODMDCTS
Syntax: MODMDCTS
Use: To determine the status of delta clear to send.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if delta clear to send is turned on, a
"N" if delta clear to send is turned off. If you did
not pass the parameter correctly (e.g. FOXLIB =
"ZOM0"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\modmdcts
. FOXLIB = "COM0"
. call modmdcts with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu modmdcts
From this example, delta clear to send is turned on.
MODMDDSR
Syntax: MODMDDSR
Use: To determine the status of delta data set ready.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if delta data set ready is turned on, a
"N" if delta data set ready is turned off. If you
did not pass the parameter correctly (e.g. FOXLIB
= "ZOM0"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\modmddsr
. FOXLIB = "COM0"
. call modmddsr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modmddsr
From this example, delta data set ready is turned
on.
MODMTER
Syntax: MODMTER
Use: To determine the status of trailing edge ring
detector.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if trailing edge ring detector is turned
on, a "N" if trailing edge ring detector is turned
off. If you did not pass the parameter correctly
(e.g. FOXLIB = "ZOM0"), your sending parameter
will be unchanged.
Example: . load c:\FOXLIB\modmter
. FOXLIB = "COM0"
. call modmter with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu modmter
From this example, trailing edge ring detector is
turned on.
MODMDRLS
Syntax: MODMDRLS
Use: To determine the status of delta receive line signal
detect.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if delta receive line signal detect is
turned on, a "N" if delta receive line signal detect
is turned off. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZOM0"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\modmdrls
. FOXLIB = "COM0"
. call modmdrls with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu modmdrls
From this example, delta receive line signal detect
is turned on.
MODMCTS
Syntax: MODMCTS
Use: To determine the status of clear to send.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if clear to send is turned on, a "N" if
clear to send is turned off. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZOM0"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\modmcts
. FOXLIB = "COM0"
. call modmcts with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu modmcts
From this example, clear to send is turned on.
MODMDSR
Syntax: MODMDSR
Use: To determine the status of data set ready.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if data set ready is turned on, a "N" if
data set ready is turned off. If you did not pass
the parameter correctly (e.g. FOXLIB =
"ZOM0"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\modmdsr
. FOXLIB = "COM0"
. call modmdsr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu modmdsr
From this example, data set ready is turned on.
MODMRI
Syntax: MODMRI
Use: To determine the status of ring indicator.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if ring indicator is turned on, a "N" if
ring indicator is turned off. If you did not pass
the parameter correctly (e.g. FOXLIB = "ZOM0"),
your sending parameter will be unchanged.
Example: . load c:\FOXLIB\modmri
. FOXLIB = "COM0"
. call modmri with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu modmri
From this example, ring indicator is turned on.
MODMRLS
Syntax: MODMRLS
Use: To determine the status of receive line signal
detect.
Parameters: COM0 for com1, COM1 for com2, COM2 for com3, and
COM3 for com4.
Returns: The first character in the sending parameter will
have a "Y" if receive line signal detect is turned
on, a "N" if receive line signal detect is turned
off. If you did not pass the parameter correctly
(e.g. FOXLIB = "ZOM0"), your sending parameter
will be unchanged.
Example: . load c:\FOXLIB\modmrls
. FOXLIB = "COM0"
. call modmrls with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu modmrls
From this example, receive line signal detect is
turned on.
MISCELLANEOUS COMMANDS
CDROMDRV
Syntax: CDROMDRV
Use: To determine the presence of the MS CD-ROM
extensions (MSCDEX.exe). If your application is
retrieving information from a CD-ROM, you should
first see if the extensions are loaded into memory.
Parameters: CDROM
Returns: The first character in the sending parameter will
have a "Y" if the extensions are present in memory,
and a "N" if they are not present. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZDROM"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\cdromdrv
. FOXLIB = "CDROM"
. call cdromdrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu cdromdrv
From the above example, the CD-ROM extension is
present in memory.
Example: if substr(FOXLIB,1,1) = "N"
@ 1,0 Say "Error! Need MS CD-ROM extensions."
@ 2,0 Say "Exit from application, load MS CD-ROM"
@ 3,0 Say "extensions, and re-start program."
endif
Use the above example to warn the computer user if
the CD-ROM extensions are not loaded into memory.
See: CDROMVER
CDROMVER
Syntax: CDROMVER
Use: To determine the CD-ROM extension version.
Parameters: CDROM
Returns: The first character in the sending parameter will
have the CD-ROM major version number, and the second
character in the sending parameter will have the CD-
ROM minor version number if the CD-ROM extension
module is present in memory. If the CD-ROM
extension module is not present in memory, you will
get garbage. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZDROM"), your sending
parameter will be unchanged.
Example: . load c:\FOXLIB\cdromdrv
. FOXLIB = "CDROM"
. call cdromdrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu cdromdrv
. load c:\FOXLIB\cdromver
. FOXLIB = "CDROM"
. call cdromver with FOXLIB
. ?asc(substr(FOXLIB,1,1))
. 2
. ?asc(substr(FOXLIB,2,1))
. 10
. rele modu cdromver
From the above example, first verify that the CD-ROM
extension is present in memory. If it is, determine
the CD-ROM extension version number. In this
example it is 2.10.
See: CDROMDRV
CURSCOL
Syntax: CURSCOL
Use: To determine the column position of the cursor.
Parameters: COL
Returns: The first character in the sending parameter will
have the column position of the cursor. If you did
not pass the parameter correctly (e.g. FOXLIB =
"ZOL"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\curscol
. FOXLIB = "COL"
. call curscol with FOXLIB
. ?asc(substr(FOXLIB,1,1))
24
. rele modu curscol
From this example, the column position of the cursor
is at column 24.
See: CURSOR, CURSROW
CURSROW
Syntax: CURSROW
Use: To determine the row position of the cursor.
Parameters: ROW
Returns: The first character in the sending parameter will
have the row position of the cursor. If you did not
pass the parameter correctly (e.g. FOXLIB =
"ZOL"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\cursrow
. FOXLIB = "ROW"
. call cursrow with FOXLIB
. ?asc(substr(FOXLIB,1,1))
0
. rele modu cursrow
From this example, the row position of the cursor
is at row 0.
See: CURSOR, CURSCOL
CURSOR
Syntax: CURSOR
Use: To change the size of the cursor.
Parameters: L for line, H for half-block, and B for block
cursor.
Returns: The first character in the sending parameter will
have a "Y" if the cursor was changed. If you did
not pass the parameter correctly (e.g. FOXLIB =
"Z"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\cursor
. FOXLIB = "H"
. call cursor with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu cursor
From this example, the cursor was changed to half
block (▄).
See: CURSCOL, CURSROW
DAYWEEK
Syntax: DAYWEEK
Use: To determine the day of the week.
Parameters: DAY
Returns: The first character in the sending parameter will
have the day of the week (0=Sunday, 1=Monday, etc.).
If you did not pass the parameter correctly (e.g.
FOXLIB = "ZAY"), your sending parameter will be
unchanged.
Example: . load c:\FOXLIB\dayweek
. FOXLIB = "DAY"
. call dayweek with FOXLIB
. ?asc(substr(FOXLIB,1,1))
3
. rele modu dayweek
From this example, day of the week is Wednesday.
Below is a list of all possible outcomes:
0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
MOUSECTR
Syntax: MOUSECTR
Use: To determine the status of the left mouse button.
Use this command only when you want to test the
functionality of the center mouse button. Have the
end-user hold down the center mouse button on any
non-responsive (i.e. blank area of the screen)
section of the computer display.
Parameters: MOUSE
Returns: The first character in the sending parameter will
have a "Y" if the cneter mouse button is down, and
a "N" if the center mouse button is not down. If
you did not pass the parameter correctly (e.g.
FOXLIB = "ZOUSE"), your sending parameter will be
unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mousectr
. FOXLIB = "MOUSE"
. call mousectr with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousectr
From this example, the center mouse button is down.
See: MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
MOUSELFT, MOUSESHW, MOUSEHID
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
This command only works with FoxPro since it is the
only FOX DBMS that comes with mouse support.
MOUSEDRV
Syntax: MOUSEDRV
Use: To determine the presence of the mouse driver.
Parameters: MOUSE
Returns: The first character in the sending parameter will
have a "Y" if the mouse driver is present in memory,
and a "N" if it is not present. If you did not pass
the parameter correctly (e.g. FOXLIB
="ZOUSE"), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
From this example, the mouse driver is present in
memory.
Example: if substr(FOXLIB,1,1) = "N"
@ 1,0 Say "Error! Need mouse driver in memory."
@ 2,0 Say "Exit from application, load mouse"
@ 3,0 Say "driver into memory, and re-start"
@ 4,0 Say "program."
endif
If your application requires a mouse, first test to
see if the mouse driver has been loaded into memory.
See: MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
MOUSESHW, MOUSEHID, MOUSECTR
MOUSEHID
Syntax: MOUSEHID
Use: To remove the mouse pointer from the display.
Parameters: MOUSE
Returns: Nothing. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZOUSE"), your sending
parameter will be unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mousehid
. FOXLIB = "MOUSE"
. call mousehid with FOXLIB
. rele modu mousehid
From this example, the mouse pointer was removed
from the display.
See: MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
MOUSELFT, MOUSESHW, MOUSECTR
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
This command only works with FoxPro since it is the
only FOX DBMS that comes with mouse support.
MOUSELFT
Syntax: MOUSELFT
Use: To determine the status of the left mouse button.
Use this command only when you want to test the
functionality of the left mouse button. Have the
end-user hold down the left mouse button on any non-
responsive (i.e. blank area of the screen) section
of the computer display.
Parameters: MOUSE
Returns: The first character in the sending parameter will
have a "Y" if the left mouse button is down, and a
"N" if the left mouse button is not down. If you
did not pass the parameter correctly (e.g. FOXLIB
= "ZOUSE"), your sending parameter will be
unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mouselft
. FOXLIB = "MOUSE"
. call mouselft with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mouselft
From this example, the left mouse button is down.
See: MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
MOUSESHW, MOUSEHID, MOUSECTR
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
This command only works with FoxPro since it is the
only FOX DBMS that comes with mouse support.
MOUSELNG
Syntax: MOUSELNG
Use: To determine the mouse language.
Parameters: MOUSE
Returns: The first character in the sending parameter will
have the language number if the mouse driver is
present in memory, and garbage if the mouse driver
is not present. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZOUSE"), your sending
parameter will be unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mouselng
. FOXLIB = "MOUSE"
. call mouselng with FOXLIB
. ?asc(substr(FOXLIB,1,1))
. 0
. rele modu mouselng
From this example, the mouse language is English.
Below is a table of all possible outcomes.
0 = English
1 = French
2 = Dutch
3 = German
4 = Swedish
5 = Finnish
6 = Spanish
7 = Portuguese
8 = Italian
See: MOUSEDRV, MOUSETYP, MOUSEVER, MOUSERHT, MOUSELFT,
MOUSESHW, MOUSEHID, MOUSECTR
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
MOUSERHT
Syntax: MOUSERHT
Use: To determine the status of the right mouse button.
Use this command only when you want to test the
functionality of the right mouse button. Have the
end-user hold down the right mouse button on any
non-responsive (i.e. blank area of the screen)
section of the computer display.
Parameters: MOUSE
Returns: The first character in the sending parameter will
have a "Y" if the right mouse button is down, and
a "N" if the right mouse button is not down. If you
did not pass the parameter correctly (e.g. FOXLIB
= "ZOUSE"), your sending parameter will be
unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mouserht
. FOXLIB = "MOUSE"
. call mouserht with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mouserht
From this example, the right mouse button is down.
See: MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSELFT,
MOUSESHW, MOUSEHID, MOUSECTR
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
This command only works with FoxPro since it is the
only FOX DBMS that comes with mouse support.
MOUSESHW
Syntax: MOUSESHW
Use: To Display the mouse pointer.
Parameters: MOUSE
Returns: Nothing. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZOUSE"), your sending
parameter will be unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mouseshw
. FOXLIB = "MOUSE"
. call mouseshw with FOXLIB
. rele modu mouseshw
From this example, the mouse pointer is displayed.
See: MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
MOUSELFT, MOUSEHID, MOUSECTR
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
This command only works with FoxPro since it is the
only FOX DBMS that comes with mouse support.
MOUSETYP
Syntax: MOUSETYP
Use: To determine the mouse type.
Parameters: MOUSE
Returns: The first character in the sending parameter will
have the mouse type if the mouse driver is present
in memory, and garbage if the mouse driver is not
present. If you did not pass the parameter
correctly (e.g. FOXLIB = "ZOUSE"), your sending
parameter will be unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mousetyp
. FOXLIB = "MOUSE"
. call mousetyp with FOXLIB
. ?asc(substr(FOXLIB,1,1))
. 2
. rele modu mousetyp
From this example, the mouse type is serial mouse.
Below is a table of all possible outcomes.
1 = Bus mouse
2 = Serial mouse
3 = InPort mouse
4 = PS/2 mouse
5 = HP mouse
See: MOUSEDRV, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
MOUSESHW, MOUSEHID, MOUSECTR
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
MOUSEVER
Syntax: MOUSEVER
Use: To determine the mouse version.
Parameters: MOUSE
Returns: The first character in the sending parameter will
have the mouse major version number, and the second
character in the sending parameter will have the
mouse minor version number if the mouse driver is
present in memory. If the mouse driver is not
present in memory, you will get garbage. If you did
not pass the parameter correctly (e.g. FOXLIB =
"ZOUSE"), your sending parameter will be unchanged.
Example:
. load c:\FOXLIB\mousedrv
. FOXLIB = "MOUSE"
. call mousedrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu mousedrv
. load c:\FOXLIB\mousever
. FOXLIB = "MOUSE"
. call mousever with FOXLIB
. ?asc(substr(FOXLIB,1,1))
. 6
. ?asc(substr(FOXLIB,2,1))
. 36
. rele modu mousever
From this example, the mouse version number is 6.36.
Please note that our mouse displayed version 6.24
when we executed mouse.com from the DOS prompt.
When we used the FOXLIB command MOUSEVER from
within FOX it returned version 6.36.
See: MOUSEDRV, MOUSETYP, MOUSELNG, MOUSERHT, MOUSELFT,
MOUSESHW, MOUSEHID, MOUSECTR
Notes: First determine if the mouse driver has been loaded
into memory using the FOXLIB command "MOUSEDRV"
before using this command. Otherwise, you will get
unwanted results.
NUMCHAR
Syntax: NUMCHAR
Use: To determine if the parameter (byte) passed is a
character or a number.
Parameters: Character or number.
Returns: The first character in the sending parameter will
have a "C" if the parameter passed is a character,
a "N" if the parameter passed is a number. If you
did not pass the parameter correctly (e.g. FOXLIB
= ""), your sending parameter will be unchanged.
Example: . load c:\FOXLIB\numchar
. FOXLIB = "A"
. call numchar with FOXLIB
. ?substr(FOXLIB,1,1) = "C"
.T.
. rele modu numchar
From this example, the parameter passed is a
character.
Example: . load c:\FOXLIB\numchar
. FOXLIB = "0"
. call numchar with FOXLIB
. ?substr(FOXLIB,1,1) = "N"
.T.
. rele modu numchar
From this example, the parameter passed is a number.
PRNTSCRN
Syntax: PRNTSCRN
Use: To print the ASCII contents on the monitor (screen).
Parameters: None
Returns: Nothing.
Example: . load c:\FOXLIB\prntscrn
. call prntscrn
. rele modu prntscrn
From this example, the ASCII contents on the monitor
(screen) are sent to the printer.
Notes: Make sure the printer is turned on and is ready to
accept the screen output. Otherwise, you could
unwanted results.
XMSDRV
Syntax: XMSDRV
Use: To determine the presence of the HIMEM.SYS driver.
Parameters: XMSDRV
Returns: The first character in the sending parameter will
have a "Y" if the driver is present in memory, and
a "N" if it is not present. If you did not pass the
parameter correctly (e.g. FOXLIB = "ZMSDRV"), your
sending parameter will be unchanged.
Example: . load c:\FOXLIB\xmsdrv
. FOXLIB = "XMSDRV"
. call xmsdrv with FOXLIB
. ?substr(FOXLIB,1,1) = "Y"
.T.
. rele modu xmsdrv
From this example, the HIMEM.SYS driver is present
in memory.
BIOSDATE ........... Page 35
CAPSOFF ............ Page 66
CAPSON ............. Page 69
CAPSSTAT ........... Page 60
CDROMDRV ........... Page 98
CDROMVER ........... Page 99
COM1200 ............ Page 74
COM2400 ............ Page 75
COM300 ............. Page 73
COM4800 ............ Page 76
COM9600 ............ Page 77
COMBID ............. Page 83
COMDR .............. Page 79
COMFE .............. Page 82
COMOE .............. Page 80
COMPE .............. Page 81
COMSTAT ............ Page 78
COMTHR ............. Page 84
COMTOE ............. Page 86
COMTSR ............. Page 85
CONVMEM ............ Page 36
CREATDIR ........... Page 23
CURSCOL ............ Page 100
CURSOR ............. Page 102
CURSROW ............ Page 101
DAYWEEK ............ Page 103
DOSVERS ............ Page 24
DRIVERDY ........... Page 25
EXTMEM ............. Page 37
GAMEADAP ........... Page 38
GETATTR ............ Page 27
GETDRIVE ........... Page 26
GETVERFY ........... Page 28
INSSTAT ............ Page 61
LEFTSHFT ........... Page 62
LPTINIT ............ Page 87
LPTSTAT ............ Page 88
MATHCOPR ........... Page 39
MCA ................ Page 40
MODMCTS ............ Page 93
MODMDCTS ........... Page 89
MODMDDSR ........... Page 90
MODMDRLS ........... Page 92
MODMDSR ............ Page 94
MODMRI ............. Page 95
MODMRLS ............ Page 96
MODMTER ............ Page 91
MOUSECTR ........... Page 104
MOUSEDRV ........... Page 105
MOUSEHID ........... Page 106
MOUSELFT ........... Page 107
MOUSELNG ........... Page 108
MOUSERHT ........... Page 109
MOUSESHW ........... Page 110
MOUSETYP ........... Page 111
MOUSEVER ........... Page 112
NODRIVES ........... Page 41
NUMCHAR ............ Page 113
NUMOFF ............. Page 67
NUMON .............. Page 70
NUMSTAT ............ Page 63
PARALLEL ........... Page 55
PC ................. Page 43
PCAT ............... Page 45
PCBUS .............. Page 42
PCCONV ............. Page 48
PCJR ............... Page 46
PCXT ............... Page 44
PCXT286 ............ Page 47
PRNTSCRN ........... Page 114
PS2M30 ............. Page 49
PS2M50 ............. Page 50
PS2M55 ............. Page 51
PS2M60 ............. Page 52
PS2M70 ............. Page 53
PS2M80 ............. Page 54
REALTIME ........... Page 56
REMOVDIR ........... Page 29
RGHTSHFT ........... Page 64
SCRLOFF ............ Page 68
SCRLON ............. Page 71
SCRLSTAT ........... Page 65
SCRNSIZE ........... Page 57
SERIAL ............. Page 58
SETATTR ............ Page 32
SETDIR ............. Page 30
SETDRIVE ........... Page 31
SETVERFY ........... Page 33
XMSDRV ............. Page 115